#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
# shared objects (in globals()):
#     plotterDateTimes: list<datetime>
#     plotterDateTimeIdx: list<int>
#

def testFuncArgs(a1, a2=3, *args, **kwargs):
    """
    """
    print(a1)
    print(a2)
    print(args)
    print(kwargs)


class MyObject(object):
    """
    """
    def __init__(self, name):
        """
        """
        self.__name = name

    def callFunc(self, pa1, pa2, *args, **kwargs):
        """
        """
        print("in %s:" % self.__name)
        print(pa1)
        print(pa2)
        print(args)
        print(kwargs)


class MyProxy(object):
    """
    """
    def __init__(self, servant):
        """
        """
        self.__servant = servant

    def invoke(self, method: str = "", *args, **kwargs):
        """
        """
        assert len(method) > 0
        getattr(self.__servant, method)(*args, **kwargs)
